<?php
if (!isset($_SESSION)) {
    session_start();
}
include_once ("Evento.php");
include_once ("Cidade.php");
include_once ("Atividade.php");
include_once 'Precoevento.php';

class EventoControle extends Controle{
    
    function novo() {
        $resultEvento = new Evento();
        $resultAtividade = array();
        $cidade = array('id' => '', 'nome' => "");
        
        $this->set("preco",  array());
        $this->set("atividade",  $resultAtividade);
        $this->set("data",  $resultEvento);
        $this->set("cidade",$cidade);
        
        $this->set('title_for_layout',"Novo Evento");
    }
    
    function edit($id) {
        $model = new Evento();
        $modelAtividade = new Atividade();
        $modelPrecoEvento = new Precoevento();
        $resultEvento = new Evento();
        $resultAtividade = array();
        $resultPreco = array();
        $cidade = array('id' => '', 'nome' => "");
        
        $resultEvento = $model->find($id);
        $cidadeModel = new Cidade();

        $resultCidade = $cidadeModel->find($resultEvento->cidade_id);
        if ($resultCidade !== FALSE){
            $cidade['id'] = $resultCidade->id;
            $cidade['nome'] = $resultCidade->nome." - ".$resultCidade->uf;
        }

        $resultAtividade = $modelAtividade->find2(array('conditions' => array('evento_id = ' => $id)))->fetchAll();
        $resultPreco = $modelPrecoEvento->find2(array('conditions' => array('evento_id = ' => $id),
                                                        'fields' => array("distinct dataFim"),
                                                            'order' => 'dataFim'));
//        $cont = count($resultAtividade);
//        if ($cont == 0){
//            $resultAtividade = array();
//        }
        
        //Variaveis que ficariam disponiveis na view
        $this->set("preco",  $resultPreco);
        $this->set("atividade",  $resultAtividade);
        $this->set("data",  $resultEvento);
        $this->set("cidade",$cidade);
        $this->set('title_for_layout',$resultEvento->nome);
        
        $this->render("novo");
    }
    
    function salvar() {
        $model = new Evento();
        $modelAtividade = new Atividade();
        $resultEvento = new Evento();
        $modelPrecoEvento = new Precoevento();
        $resultAtividade = new Atividade();   
        $resultPreco = array();
        $cidade = array('id' => '', 'nome' => "");
        
        if (!empty ($this->data)){
            $this->data['dataInicio'] = implode("-", array_reverse(explode("/", $this->data['dataInicio'])));
            $this->data['dataFim'] = implode("-", array_reverse(explode("/", $this->data['dataFim']))); 
            $error = null;
            if ($model->save($this->data, $error)) {
                $this->set('success',"Evento nome {$this->data['nome']} salvo com sucesso.");
            } else {
                $this->set('success',$error[0]['msg']);
            }
            $resultEvento = $model->find($this->data['id']);
            $resultAtividade = $modelAtividade->find2(array('conditions' => 
                                                array('evento_id = '=>$this->data['id'])))->fetchAll();
            
            $cidadeModel = new Cidade();
            $resultCidade = $cidadeModel->find($resultEvento->cidade_id);
            if ($resultCidade !== FALSE){            
                $cidade['id'] = $resultCidade->id;
                $cidade['nome'] = $resultCidade->nome." - ".$resultCidade->uf;
            }
            
            $resultPreco = $modelPrecoEvento->find2(array('conditions' => array('evento_id = ' => $this->data['id']),
                                                        'fields' => array("distinct dataFim")));
        } 
        
        $this->set("preco",  $resultPreco);
        $this->set("atividade",  $resultAtividade);
        $this->set("data",  $resultEvento);
        $this->set("cidade",$cidade);
        $this->set('title_for_layout',$resultEvento->nome);
        
        $this->render("novo");        
    }
    
    function excluir($idEvento = NULL) {
        $model = new Evento();


        if ($model->delete($idEvento)) {
            $this->set('success',"O evento com id {$idEvento} foi excluido.");
        }else{
            $this->set('success',"Não foi possível excluir evento id: {$idEvento}.");
        }
        $resultado = $model->findAll();
        
        $this->set(array("resultado", "title_for_layout"), 
                    array($resultado,"Lista eventos - Sistema de Eventos"));        
        $this->render("index");
    }
   
    function index(){
        $model = new Evento();        
        $resultado = $model->findAll();

        $this->set(array("resultado", "title_for_layout"), 
                    array($resultado,"Lista eventos - Sistema de Eventos"));
    }
    
    function buscacidade($params=NULL) {
        header('Content-type: application/json');
        $model = new Cidade();
        $id = (int) $params;
        if ($id === 0){
            $result = $model->find2(array('conditions' => 
                                            array('nome like' => "$params%"),
                                            'limit' => 8,
                                            'order' => array('nome', 'uf')));
            $json = "{ \"cidades\" : [\n";
            foreach ($result as $value) {
                $json .= "{ \"id\" : ".(int)$value['id'].",\n";
                $json .= " \"uf\" : \"{$value['uf']}\",\n";
                $json .= " \"nome\" : \"{$value['nome']}\"},\n";
            }
            $json = substr($json, 0, -2);
            $json .= ']}';
        } else{
            $result = $model->find($id);
            $json = "{ \"cidades\" : [\n";
            $json .= "{ \"id\" : ".(int)$result->id.",\n";
            $json .= " \"uf\" : \"{$result->uf}\",\n";
            $json .= " \"nome\" : \"{$result->nome}\"}";
            $json .= ']}';            
        }
        echo $json;
        
        $this->autoLayout = FALSE;
        $this->autoRender = FALSE;
    }

}
?>
